Skip to content

feat: Adds autobuild trigger workflow to avoid the auto-disabling on build loop job#461

Open
daghaian wants to merge 4 commits into
LoopKit:update_dev_to_3.14.3from
daghaian-loop-org:add-build-autotrigger
Open

feat: Adds autobuild trigger workflow to avoid the auto-disabling on build loop job#461
daghaian wants to merge 4 commits into
LoopKit:update_dev_to_3.14.3from
daghaian-loop-org:add-build-autotrigger

Conversation

@daghaian

Copy link
Copy Markdown

What changed

The Build Loop workflow was being automatically disabled by GitHub after each run (manual or scheduled), preventing subsequent scheduled builds from firing. The root cause is a known GitHub Actions behavior where workflows with a schedule trigger can be auto-disabled under certain conditions.

Why

Scheduled builds were silently failing to run, which breaks the expected automated build cadence.

Solution

  • Removed the schedule trigger from the Build Loop workflow
  • Introduced a new trigger_build workflow that owns the schedule, re-enables the Build Loop workflow before each run, and then dispatches it via workflow_dispatch

This sidesteps GitHub's auto-disable behavior by keeping the scheduled entry point in a separate, lightweight workflow that re-activates the primary one before triggering it.

Testing

  • Manually triggered trigger_build and confirmed it re-enabled and dispatched Build Loop successfully
  • Verified scheduled runs now fire as expected

Review notes

The logic change is isolated to workflow files only — no app code is affected. The main thing worth validating is that the workflow_dispatch + re-enable sequence in trigger_build is robust across the expected trigger scenarios (scheduled, manual).

@marionbarker marionbarker changed the base branch from dev to update_dev_to_3.14.3 June 25, 2026 00:02
@marionbarker

Copy link
Copy Markdown
Contributor

Test

✅ successful test

Test Details

For testing purposes, I modified the files to trigger Wed at 5:33 pm PDT (00:33 Thursday UTC) and modified to check for the 4th week (instead of 2nd) to require a build regardless of new commits.

In usual GitHub fashion, this did not trigger until much later. But at 9:46 pm Wed, the trigger build did run and it did successfully enable the build and start the build.

The build completed and was uploaded to TestFlight. I successfully installed this build on my test phone.

Note in the screenshot below that once again Build Loop is disabled.

Screenshot 2026-06-25 at 11 54 15 AM

@marionbarker

Copy link
Copy Markdown
Contributor

Next steps

Thank you so much for this proposal @daghaian

Let's think about modifications to prevent changing too much in the way of much documentation.

Would it work to modify the job name to 4. Build Loop inside trigger_build.yml and a different (and unnumbered job name in build_loop.yml, (backend-build-process or something else).

Then we can just add words that 4. Build Loop triggers the process that actually does the build and is able to run without being disabled by GitHub.

@marionbarker

Copy link
Copy Markdown
Contributor

Test

✅ This test was successful.

  • I think a rename like this is a good idea.

❓ The thing we don't know and won't know is will the trigger_build.yml file also be disabled by GitHub when it reaches enough forks.

Test Details

Continuing to work in my docs-test organization, I modified the name for the jobs as follows:

diff --git a/.github/workflows/build_loop.yml b/.github/workflows/build_loop.yml

    -name: 5. Build Loop
    +name: background process that builds

diff --git a/.github/workflows/trigger_build.yml b/.github/workflows/trigger_build.yml

    -name: 4. Trigger Build Loop 
    +name: 4. Build Loop

I pushed this change to docs-test along with a modification to trigger the cron job today at 12:33 PDT (19:33 UTC).

Screenshot before job is triggered

Note that the job names now match what is in the documentation with the new trigger_build.yml job called 4. Build Loop and the build_loop.yml job called background process that builds showing up at the end with no number.

Note also that the build_loop.yml file (background process that builds) is disabled.

renamed-names-for-yml-note-disabled-build_loop

Screenshot after job is triggered

The new trigger_build.yml shows up as 4. Build Loop and it triggers as expected from the cron job. It kicks off the build_loop.yml file (background process that builds) which starts right away.

Note that build_loop.yml is already disabled again, but the build continues, and completed successfully.

renamed-names-for-yml-after-it-was-triggered

@daghaian daghaian force-pushed the add-build-autotrigger branch from 9591c86 to b1be261 Compare June 26, 2026 22:47
@marionbarker

Copy link
Copy Markdown
Contributor

There was some private communications back and forth. At one point David said just renaming the build file prevents to disabling. I tried this with a different branch: https://github.com/docs-test/LoopWorkspace/tree/test-simple-rename

I renamed the build_loop.yml file to build_loop_new.yml.
Then I modified the cron time so it would run sometime after 5:33 pm PDT Friday.

And it did automatically build and was not automatically disabled.

It may be easier just to rename and see if that fixes the issue. If that is later disabled, then we could try the trigger idea.

Feedback is desired.

Screenshot 2026-06-26 at 10 17 59 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants